home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / sdla_ppp.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  24KB  |  576 lines

  1. /*****************************************************************************
  2. * sdla_ppp.h    Sangoma PPP firmware API definitions.
  3. *
  4. * Author:    Nenad Corbic    <ncorbic@sangoma.com>
  5. *
  6. * Copyright:    (c) 1995-1997 Sangoma Technologies Inc.
  7. *
  8. *        This program is free software; you can redistribute it and/or
  9. *        modify it under the terms of the GNU General Public License
  10. *        as published by the Free Software Foundation; either version
  11. *        2 of the License, or (at your option) any later version.
  12. * ============================================================================
  13. * Feb 24, 2000  Nenad Corbic    v2.1.2
  14. * Jan 06, 1997    Gene Kozin    v2.0
  15. * Apr 11, 1996    Gene Kozin    Initial version.
  16. *****************************************************************************/
  17. #ifndef    _SDLA_PPP_H
  18. #define    _SDLA_PPP_H
  19.  
  20. /*----------------------------------------------------------------------------
  21.  * Notes:
  22.  * ------
  23.  * 1. All structures defined in this file are byte-alined.  
  24.  *
  25.  *    Compiler    Platform
  26.  *    --------    --------
  27.  *    GNU C        Linux        
  28.  */
  29.  
  30. #ifndef    PACKED
  31. #    define    PACKED    __attribute__((packed))
  32. #endif    /* PACKED */
  33.  
  34. /* Adapter memory layout and important constants */
  35. #define    PPP508_MB_VECT    0xE000    /* mailbox window vector */
  36. #define    PPP508_MB_OFFS    0        /* mailbox offset */
  37. #define    PPP508_FLG_OFFS    0x1000    /* status flags offset */
  38. #define    PPP508_BUF_OFFS    0x1100    /* buffer info block offset */
  39. #define PPP514_MB_OFFS  0xE000  /* mailbox offset */
  40. #define PPP514_FLG_OFFS 0xF000  /* status flags offset */
  41. #define PPP514_BUF_OFFS 0xF100  /* buffer info block offset */
  42.  
  43. #define PPP_MAX_DATA    1008    /* command block data buffer length */
  44.  
  45. /****** Data Structures *****************************************************/
  46.  
  47. /*----------------------------------------------------------------------------
  48.  * PPP Command Block.
  49.  */
  50. typedef struct ppp_cmd{
  51.     unsigned char  command    PACKED;    /* command code */
  52.     unsigned short length    PACKED;    /* length of data buffer */
  53.     unsigned char  result    PACKED;    /* return code */
  54.     unsigned char  rsrv[11]    PACKED;    /* reserved for future use */
  55. } ppp_cmd_t;
  56.  
  57. typedef struct cblock{
  58.     unsigned char  opp_flag    PACKED;
  59.     unsigned char  command    PACKED;    /* command code */
  60.     unsigned short length    PACKED;    /* length of data buffer */
  61.     unsigned char  result    PACKED;    /* return code */
  62.     unsigned char  rsrv[11]    PACKED;    /* reserved for future use */
  63. } cblock_t;
  64.  
  65. typedef struct ppp_udp_pkt{
  66.     ip_pkt_t     ip_pkt    PACKED;
  67.     udp_pkt_t    udp_pkt    PACKED;
  68.     wp_mgmt_t    wp_mgmt PACKED;
  69.     cblock_t    cblock  PACKED;
  70.     unsigned char   data[MAX_LGTH_UDP_MGNT_PKT] PACKED;
  71. } ppp_udp_pkt_t;    
  72.  
  73. typedef struct {
  74.     unsigned char    status        PACKED;
  75.     unsigned char    data_avail    PACKED;
  76.     unsigned short    real_length    PACKED;
  77.     unsigned short    time_stamp    PACKED;
  78.     unsigned char    data[1]        PACKED;
  79. } trace_pkt_t;
  80.  
  81.  
  82. typedef struct {
  83.     unsigned char     opp_flag    PACKED;
  84.     unsigned char    trace_type    PACKED;
  85.     unsigned short     trace_length    PACKED;
  86.     unsigned short     trace_data_ptr    PACKED;
  87.     unsigned short  trace_time_stamp PACKED;
  88. } trace_element_t;
  89.  
  90. /* 'command' field defines */
  91. #define PPP_READ_CODE_VERSION    0x10    /* configuration commands */
  92. #define PPP_SET_CONFIG        0x05
  93. #define PPP_READ_CONFIG        0x06
  94. #define    PPP_SET_INTR_FLAGS    0x20
  95. #define    PPP_READ_INTR_FLAGS    0x21
  96. #define    PPP_SET_INBOUND_AUTH    0x30
  97. #define    PPP_SET_OUTBOUND_AUTH    0x31
  98. #define    PPP_GET_CONNECTION_INFO    0x32
  99.  
  100. #define PPP_COMM_ENABLE        0x03    /* operational commands */
  101. #define PPP_COMM_DISABLE    0x04
  102. #define    PPP_SEND_SIGN_FRAME    0x23
  103. #define    PPP_READ_SIGN_RESPONSE    0x24
  104. #define    PPP_DATALINE_MONITOR    0x33
  105.  
  106. #define PPP_READ_STATISTICS    0x07    /* statistics commands */
  107. #define PPP_FLUSH_STATISTICS    0x08
  108. #define PPP_READ_ERROR_STATS    0x09
  109. #define PPP_FLUSH_ERROR_STATS    0x0A
  110. #define PPP_READ_PACKET_STATS    0x12
  111. #define PPP_FLUSH_PACKET_STATS    0x13
  112. #define PPP_READ_LCP_STATS    0x14
  113. #define PPP_FLUSH_LCP_STATS    0x15
  114. #define PPP_READ_LPBK_STATS    0x16
  115. #define PPP_FLUSH_LPBK_STATS    0x17
  116. #define PPP_READ_IPCP_STATS    0x18
  117. #define PPP_FLUSH_IPCP_STATS    0x19
  118. #define PPP_READ_IPXCP_STATS    0x1A
  119. #define PPP_FLUSH_IPXCP_STATS    0x1B
  120. #define PPP_READ_PAP_STATS    0x1C
  121. #define PPP_FLUSH_PAP_STATS    0x1D
  122. #define PPP_READ_CHAP_STATS    0x1E
  123. #define PPP_FLUSH_CHAP_STATS    0x1F
  124.  
  125. /* 'result' field defines */
  126. #define PPPRES_OK        0x00    /* command executed successfully */
  127. #define    PPPRES_INVALID_STATE    0x09    /* invalid command in this context */
  128.  
  129. /*----------------------------------------------------------------------------
  130.  * PPP Mailbox.
  131.  *    This structure is located at offset PPP???_MB_OFFS into PPP???_MB_VECT
  132.  */
  133. typedef struct ppp_mbox
  134. {
  135.     unsigned char flag    PACKED;    /* 00h: command execution flag */
  136.     ppp_cmd_t     cmd    PACKED; /* 01h: command block */
  137.     unsigned char data[1]    PACKED;    /* 10h: variable length data buffer */
  138. } ppp_mbox_t;
  139.  
  140. /*----------------------------------------------------------------------------
  141.  * PPP Status Flags.
  142.  *    This structure is located at offset PPP???_FLG_OFFS into
  143.  *    PPP???_MB_VECT.
  144.  */
  145. typedef struct    ppp_flags
  146. {
  147.     unsigned char iflag        PACKED;    /* 00: interrupt flag */
  148.     unsigned char imask        PACKED;    /* 01: interrupt mask */
  149.     unsigned char resrv        PACKED;
  150.     unsigned char mstatus        PACKED;    /* 03: modem status */
  151.     unsigned char lcp_state        PACKED; /* 04: LCP state */
  152.     unsigned char ppp_phase        PACKED;    /* 05: PPP phase */
  153.     unsigned char ip_state        PACKED; /* 06: IPCP state */
  154.     unsigned char ipx_state        PACKED; /* 07: IPXCP state */
  155.     unsigned char pap_state        PACKED; /* 08: PAP state */
  156.     unsigned char chap_state    PACKED; /* 09: CHAP state */
  157.     unsigned short disc_cause    PACKED;    /* 0A: disconnection cause */
  158. } ppp_flags_t;
  159.  
  160. /* 'iflag' defines */
  161. #define    PPP_INTR_RXRDY        0x01    /* Rx ready */
  162. #define    PPP_INTR_TXRDY        0x02    /* Tx ready */
  163. #define    PPP_INTR_MODEM        0x04    /* modem status change (DCD, CTS) */
  164. #define    PPP_INTR_CMD        0x08    /* interface command completed */
  165. #define    PPP_INTR_DISC        0x10    /* data link disconnected */
  166. #define    PPP_INTR_OPEN        0x20    /* data link open */
  167. #define    PPP_INTR_DROP_DTR    0x40    /* DTR drop timeout expired */
  168. #define PPP_INTR_TIMER          0x80    /* timer interrupt */
  169.  
  170.  
  171. /* 'mstatus' defines */
  172. #define    PPP_MDM_DCD        0x08    /* mdm_status: DCD */
  173. #define    PPP_MDM_CTS        0x20    /* mdm_status: CTS */
  174.  
  175. /* 'disc_cause' defines */
  176. #define PPP_LOCAL_TERMINATION   0x0001    /* Local Request by PPP termination phase */
  177. #define PPP_DCD_CTS_DROP        0x0002  /* DCD and/or CTS dropped. Link down */
  178. #define PPP_REMOTE_TERMINATION    0x0800    /* Remote Request by PPP termination phase */
  179.  
  180. /* 'misc_config_bits' defines */
  181. #define DONT_RE_TX_ABORTED_I_FRAMES     0x01
  182. #define TX_FRM_BYTE_COUNT_STATS         0x02
  183. #define RX_FRM_BYTE_COUNT_STATS         0x04
  184. #define TIME_STAMP_IN_RX_FRAMES         0x08
  185. #define NON_STD_ADPTR_FREQ              0x10
  186. #define INTERFACE_LEVEL_RS232           0x20
  187. #define AUTO_LINK_RECOVERY              0x100
  188. #define DONT_TERMINATE_LNK_MAX_CONFIG   0x200                    
  189.  
  190. /* 'authentication options' defines */
  191. #define NO_AUTHENTICATION    0x00
  192. #define INBOUND_AUTH        0x80
  193. #define PAP_AUTH        0x01
  194. #define CHAP_AUTH        0x02        
  195.  
  196. /* 'ip options' defines */
  197. #define L_AND_R_IP_NO_ASSIG    0x00
  198. #define L_IP_LOCAL_ASSIG        0x01
  199. #define L_IP_REMOTE_ASSIG       0x02
  200. #define R_IP_LOCAL_ASSIG        0x04
  201. #define R_IP_REMOTE_ASSIG       0x08
  202. #define ENABLE_IP        0x80
  203.  
  204. /* 'ipx options' defines */
  205. #define ROUTING_PROT_DEFAULT    0x20
  206. #define ENABLE_IPX        0x80
  207. #define DISABLE_IPX        0x00
  208.  
  209. /*----------------------------------------------------------------------------
  210.  * PPP Buffer Info.
  211.  *    This structure is located at offset PPP508_BUF_OFFS into
  212.  *    PPP508_MB_VECT.
  213.  */
  214. typedef struct    ppp508_buf_info
  215. {
  216.     unsigned short txb_num    PACKED;    /* 00: number of transmit buffers */
  217.     unsigned long  txb_ptr    PACKED;    /* 02: pointer to the buffer ctl. */
  218.     unsigned long  txb_nxt  PACKED;
  219.     unsigned char  rsrv1[22] PACKED;
  220.     unsigned short rxb_num    PACKED;    /* 20: number of receive buffers */
  221.     unsigned long  rxb_ptr    PACKED;    /* 22: pointer to the buffer ctl. */
  222.     unsigned long  rxb1_ptr    PACKED;    /* 26: pointer to the first buf.ctl. */
  223.     unsigned long  rxb_base    PACKED;    /* 2A: pointer to the buffer base */
  224.     unsigned char  rsrv2[2]    PACKED;
  225.     unsigned long  rxb_end    PACKED;    /* 30: pointer to the buffer end */
  226. } ppp508_buf_info_t;
  227.  
  228. /*----------------------------------------------------------------------------
  229.  * Transmit/Receive Buffer Control Block.
  230.  */
  231. typedef struct    ppp_buf_ctl
  232. {
  233.     unsigned char  flag        PACKED;    /* 00: 'buffer ready' flag */
  234.     unsigned short length        PACKED;    /* 01: length of data */
  235.     unsigned char  reserved1[1]    PACKED;    /* 03: */
  236.     unsigned char  proto        PACKED;    /* 04: protocol */
  237.     unsigned short timestamp    PACKED;    /* 05: time stamp (Rx only) */
  238.     unsigned char  reserved2[5]    PACKED;    /* 07: */
  239.     union
  240.     {
  241.         unsigned short o_p[2];    /* 1C: buffer offset & page (S502) */
  242.         unsigned long  ptr;    /* 1C: buffer pointer (S508) */
  243.     } buf                PACKED;
  244. } ppp_buf_ctl_t;
  245.  
  246. /*----------------------------------------------------------------------------
  247.  * S508 Adapter Configuration Block (passed to the PPP_SET_CONFIG command).
  248.  */
  249. typedef struct    ppp508_conf
  250. {
  251.     unsigned long  line_speed    PACKED;    /* 00: baud rate, bps */
  252.     unsigned short txbuf_percent    PACKED;    /* 04: % of Tx buffer */
  253.     unsigned short conf_flags    PACKED;    /* 06: configuration bits */
  254.     unsigned short mtu_local    PACKED;    /* 08: local MTU */
  255.     unsigned short mtu_remote    PACKED;    /* 0A: remote MTU */
  256.     unsigned short restart_tmr    PACKED;    /* 0C: restart timer */
  257.     unsigned short auth_rsrt_tmr    PACKED;    /* 0E: authentication timer */
  258.     unsigned short auth_wait_tmr    PACKED;    /* 10: authentication timer */
  259.     unsigned short mdm_fail_tmr    PACKED;    /* 12: modem failure timer */
  260.     unsigned short dtr_drop_tmr    PACKED;    /* 14: DTR drop timer */
  261.     unsigned short connect_tmout    PACKED;    /* 16: connection timeout */
  262.     unsigned short conf_retry    PACKED;    /* 18: max. retry */
  263.     unsigned short term_retry    PACKED;    /* 1A: max. retry */
  264.     unsigned short fail_retry    PACKED;    /* 1C: max. retry */
  265.     unsigned short auth_retry    PACKED;    /* 1E: max. retry */
  266.     unsigned char  auth_options    PACKED;    /* 20: authentication opt. */
  267.     unsigned char  ip_options    PACKED;    /* 21: IP options */
  268.     unsigned long  ip_local        PACKED;    /* 22: local IP address */
  269.     unsigned long  ip_remote    PACKED;    /* 26: remote IP address */
  270.     unsigned char  ipx_options    PACKED;    /* 2A: IPX options */
  271.     unsigned char  ipx_netno[4]    PACKED;    /* 2B: IPX net number */
  272.     unsigned char  ipx_local[6]    PACKED;    /* 2F: local IPX node number*/
  273.     unsigned char  ipx_remote[6]    PACKED;    /* 35: remote IPX node num.*/
  274.     unsigned char  ipx_router[48]    PACKED;    /* 3B: IPX router name*/
  275.     unsigned long  alt_cpu_clock    PACKED;    /* 6B:  */
  276. } ppp508_conf_t;
  277.  
  278. /*----------------------------------------------------------------------------
  279.  * S508 Adapter Read Connection Information Block 
  280.  *    Returned by the PPP_GET_CONNECTION_INFO command
  281.  */
  282. typedef struct    ppp508_connect_info
  283. {
  284.     unsigned short     mru        PACKED;    /* 00-01 Remote Max Rec' Unit */
  285.     unsigned char      ip_options     PACKED; /* 02: Negotiated ip options  */
  286.     unsigned long      ip_local    PACKED;    /* 03-06: local IP address    */
  287.     unsigned long      ip_remote    PACKED;    /* 07-0A: remote IP address   */
  288.     unsigned char    ipx_options    PACKED; /* 0B: Negotiated ipx options */
  289.     unsigned char      ipx_netno[4]    PACKED;    /* 0C-0F: IPX net number      */
  290.     unsigned char      ipx_local[6]    PACKED;    /* 10-1F: local IPX node #    */
  291.     unsigned char      ipx_remote[6]    PACKED;    /* 16-1B: remote IPX node #   */
  292.     unsigned char      ipx_router[48]    PACKED;    /* 1C-4B: IPX router name     */
  293.     unsigned char    auth_status    PACKED; /* 4C: Authentication Status  */
  294.     unsigned char     inbd_auth_peerID[1] PACKED; /* 4D: variable length inbound authenticated peer ID */
  295. } ppp508_connect_info_t;
  296.  
  297. /* 'line_speed' field */
  298. #define    PPP_BITRATE_1200    0x01
  299. #define    PPP_BITRATE_2400    0x02
  300. #define    PPP_BITRATE_4800    0x03
  301. #define    PPP_BITRATE_9600    0x04
  302. #define    PPP_BITRATE_19200    0x05
  303. #define    PPP_BITRATE_38400    0x06
  304. #define    PPP_BITRATE_45000    0x07
  305. #define    PPP_BITRATE_56000    0x08
  306. #define    PPP_BITRATE_64000    0x09
  307. #define    PPP_BITRATE_74000    0x0A
  308. #define    PPP_BITRATE_112000    0x0B
  309. #define    PPP_BITRATE_128000    0x0C
  310. #define    PPP_BITRATE_156000    0x0D
  311.  
  312. /* Defines for the 'conf_flags' field */
  313. #define    PPP_IGNORE_TX_ABORT    0x01    /* don't re-transmit aborted frames */
  314. #define    PPP_ENABLE_TX_STATS    0x02    /* enable Tx statistics */
  315. #define    PPP_ENABLE_RX_STATS    0x04    /* enable Rx statistics */
  316. #define    PPP_ENABLE_TIMESTAMP    0x08    /* enable timestamp */
  317.  
  318. /* 'ip_options' defines */
  319. #define    PPP_LOCAL_IP_LOCAL    0x01
  320. #define    PPP_LOCAL_IP_REMOTE    0x02
  321. #define    PPP_REMOTE_IP_LOCAL    0x04
  322. #define    PPP_REMOTE_IP_REMOTE    0x08
  323.  
  324. /* 'ipx_options' defines */
  325. #define    PPP_REMOTE_IPX_NETNO    0x01
  326. #define    PPP_REMOTE_IPX_LOCAL    0x02
  327. #define    PPP_REMOTE_IPX_REMOTE    0x04
  328. #define    PPP_IPX_ROUTE_RIP_SAP    0x08
  329. #define    PPP_IPX_ROUTE_NLSP    0x10
  330. #define    PPP_IPX_ROUTE_DEFAULT    0x20
  331. #define    PPP_IPX_CONF_COMPLETE    0x40
  332. #define    PPP_IPX_ENABLE        0x80
  333.  
  334. /*----------------------------------------------------------------------------
  335.  * S508 Adapter Configuration Block (returned by the PPP_READ_CONFIG command).
  336.  */
  337. typedef struct    ppp508_get_conf
  338. {
  339.     unsigned long  bps    PACKED;    /* 00: baud rate, bps */
  340.     ppp508_conf_t  conf    PACKED;    /* 04: requested config. */
  341.     unsigned short txb_num    PACKED;    /* 6F: number of Tx buffers */
  342.     unsigned short rxb_num    PACKED;    /* 71: number of Rx buffers */
  343. } ppp508_get_conf_t;
  344.  
  345. /*----------------------------------------------------------------------------
  346.  * S508 Operational Statistics (returned by the PPP_READ_STATISTIC command).
  347.  */
  348. typedef struct ppp508_stats
  349. {
  350.     unsigned short reserved1    PACKED;    /* 00: */
  351.     unsigned short rx_bad_len    PACKED;    /* 02: */
  352.     unsigned short reserved2    PACKED;    /* 04: */
  353.     unsigned long  tx_frames    PACKED;    /* 06: */
  354.     unsigned long  tx_bytes    PACKED;    /* 0A: */
  355.     unsigned long  rx_frames    PACKED;    /* 0E: */
  356.     unsigned long  rx_bytes    PACKED;    /* 12: */
  357. } ppp508_stats_t;
  358.  
  359. /*----------------------------------------------------------------------------
  360.  * Adapter Error Statistics (returned by the PPP_READ_ERROR_STATS command).
  361.  */
  362. typedef struct    ppp_err_stats
  363. {
  364.     unsigned char     rx_overrun    PACKED;    /* 00: Rx overrun errors */
  365.     unsigned char     rx_bad_crc    PACKED;    /* 01: Rx CRC errors */
  366.     unsigned char     rx_abort    PACKED;    /* 02: Rx aborted frames */
  367.     unsigned char     rx_lost    PACKED;    /* 03: Rx frames lost */
  368.     unsigned char     tx_abort    PACKED;    /* 04: Tx aborted frames */
  369.     unsigned char     tx_underrun    PACKED;    /* 05: Tx underrun errors */
  370.     unsigned char     tx_missed_intr    PACKED;    /* 06: Tx underruns missed */
  371.     unsigned char     reserved    PACKED;    /* 07: Tx underruns missed */
  372.     unsigned char     dcd_trans    PACKED;    /* 08: DCD transitions */
  373.     unsigned char     cts_trans    PACKED;    /* 09: CTS transitions */
  374. } ppp_err_stats_t;
  375.  
  376. /*----------------------------------------------------------------------------
  377.  * Packet Statistics (returned by the PPP_READ_PACKET_STATS command).
  378.  */
  379. typedef struct    ppp_pkt_stats
  380. {
  381.     unsigned short rx_bad_header    PACKED;    /* 00: */
  382.     unsigned short rx_prot_unknwn    PACKED;    /* 02: */
  383.     unsigned short rx_too_large    PACKED;    /* 04: */
  384.     unsigned short rx_lcp        PACKED;    /* 06: */
  385.     unsigned short tx_lcp        PACKED;    /* 08: */
  386.     unsigned short rx_ipcp        PACKED;    /* 0A: */
  387.     unsigned short tx_ipcp        PACKED;    /* 0C: */
  388.     unsigned short rx_ipxcp        PACKED;    /* 0E: */
  389.     unsigned short tx_ipxcp        PACKED;    /* 10: */
  390.     unsigned short rx_pap        PACKED;    /* 12: */
  391.     unsigned short tx_pap        PACKED;    /* 14: */
  392.     unsigned short rx_chap        PACKED;    /* 16: */
  393.     unsigned short tx_chap        PACKED;    /* 18: */
  394.     unsigned short rx_lqr        PACKED;    /* 1A: */
  395.     unsigned short tx_lqr        PACKED;    /* 1C: */
  396.     unsigned short rx_ip        PACKED;    /* 1E: */
  397.     unsigned short tx_ip        PACKED;    /* 20: */
  398.     unsigned short rx_ipx        PACKED;    /* 22: */
  399.     unsigned short tx_ipx        PACKED;    /* 24: */
  400. } ppp_pkt_stats_t;
  401.  
  402. /*----------------------------------------------------------------------------
  403.  * LCP Statistics (returned by the PPP_READ_LCP_STATS command).
  404.  */
  405. typedef struct    ppp_lcp_stats
  406. {
  407.     unsigned short rx_unknown    PACKED;    /* 00: unknown LCP type */
  408.     unsigned short rx_conf_rqst    PACKED;    /* 02: Configure-Request */
  409.     unsigned short rx_conf_ack    PACKED;    /* 04: Configure-Ack */
  410.     unsigned short rx_conf_nak    PACKED;    /* 06: Configure-Nak */
  411.     unsigned short rx_conf_rej    PACKED;    /* 08: Configure-Reject */
  412.     unsigned short rx_term_rqst    PACKED;    /* 0A: Terminate-Request */
  413.     unsigned short rx_term_ack    PACKED;    /* 0C: Terminate-Ack */
  414.     unsigned short rx_code_rej    PACKED;    /* 0E: Code-Reject */
  415.     unsigned short rx_proto_rej    PACKED;    /* 10: Protocol-Reject */
  416.     unsigned short rx_echo_rqst    PACKED;    /* 12: Echo-Request */
  417.     unsigned short rx_echo_reply    PACKED;    /* 14: Echo-Reply */
  418.     unsigned short rx_disc_rqst    PACKED;    /* 16: Discard-Request */
  419.     unsigned short tx_conf_rqst    PACKED;    /* 18: Configure-Request */
  420.     unsigned short tx_conf_ack    PACKED;    /* 1A: Configure-Ack */
  421.     unsigned short tx_conf_nak    PACKED;    /* 1C: Configure-Nak */
  422.     unsigned short tx_conf_rej    PACKED;    /* 1E: Configure-Reject */
  423.     unsigned short tx_term_rqst    PACKED;    /* 20: Terminate-Request */
  424.     unsigned short tx_term_ack    PACKED;    /* 22: Terminate-Ack */
  425.     unsigned short tx_code_rej    PACKED;    /* 24: Code-Reject */
  426.     unsigned short tx_proto_rej    PACKED;    /* 26: Protocol-Reject */
  427.     unsigned short tx_echo_rqst    PACKED;    /* 28: Echo-Request */
  428.     unsigned short tx_echo_reply    PACKED;    /* 2A: Echo-Reply */
  429.     unsigned short tx_disc_rqst    PACKED;    /* 2E: Discard-Request */
  430.     unsigned short rx_too_large    PACKED;    /* 30: packets too large */
  431.     unsigned short rx_ack_inval    PACKED;    /* 32: invalid Conf-Ack */
  432.     unsigned short rx_rej_inval    PACKED;    /* 34: invalid Conf-Reject */
  433.     unsigned short rx_rej_badid    PACKED;    /* 36: Conf-Reject w/bad ID */
  434. } ppp_lcp_stats_t;
  435.  
  436. /*----------------------------------------------------------------------------
  437.  * Loopback Error Statistics (returned by the PPP_READ_LPBK_STATS command).
  438.  */
  439. typedef struct    ppp_lpbk_stats
  440. {
  441.     unsigned short conf_magic    PACKED;    /* 00:  */
  442.     unsigned short loc_echo_rqst    PACKED;    /* 02:  */
  443.     unsigned short rem_echo_rqst    PACKED;    /* 04:  */
  444.     unsigned short loc_echo_reply    PACKED;    /* 06:  */
  445.     unsigned short rem_echo_reply    PACKED;    /* 08:  */
  446.     unsigned short loc_disc_rqst    PACKED;    /* 0A:  */
  447.     unsigned short rem_disc_rqst    PACKED;    /* 0C:  */
  448.     unsigned short echo_tx_collsn    PACKED;    /* 0E:  */
  449.     unsigned short echo_rx_collsn    PACKED;    /* 10:  */
  450. } ppp_lpbk_stats_t;
  451.  
  452. /*----------------------------------------------------------------------------
  453.  * Protocol Statistics (returned by the PPP_READ_IPCP_STATS and
  454.  * PPP_READ_IPXCP_STATS commands).
  455.  */
  456. typedef struct    ppp_prot_stats
  457. {
  458.     unsigned short rx_unknown    PACKED;    /* 00: unknown type */
  459.     unsigned short rx_conf_rqst    PACKED;    /* 02: Configure-Request */
  460.     unsigned short rx_conf_ack    PACKED;    /* 04: Configure-Ack */
  461.     unsigned short rx_conf_nak    PACKED;    /* 06: Configure-Nak */
  462.     unsigned short rx_conf_rej    PACKED;    /* 08: Configure-Reject */
  463.     unsigned short rx_term_rqst    PACKED;    /* 0A: Terminate-Request */
  464.     unsigned short rx_term_ack    PACKED;    /* 0C: Terminate-Ack */
  465.     unsigned short rx_code_rej    PACKED;    /* 0E: Code-Reject */
  466.     unsigned short reserved        PACKED;    /* 10: */
  467.     unsigned short tx_conf_rqst    PACKED;    /* 12: Configure-Request */
  468.     unsigned short tx_conf_ack    PACKED;    /* 14: Configure-Ack */
  469.     unsigned short tx_conf_nak    PACKED;    /* 16: Configure-Nak */
  470.     unsigned short tx_conf_rej    PACKED;    /* 18: Configure-Reject */
  471.     unsigned short tx_term_rqst    PACKED;    /* 1A: Terminate-Request */
  472.     unsigned short tx_term_ack    PACKED;    /* 1C: Terminate-Ack */
  473.     unsigned short tx_code_rej    PACKED;    /* 1E: Code-Reject */
  474.     unsigned short rx_too_large    PACKED;    /* 20: packets too large */
  475.     unsigned short rx_ack_inval    PACKED;    /* 22: invalid Conf-Ack */
  476.     unsigned short rx_rej_inval    PACKED;    /* 24: invalid Conf-Reject */
  477.     unsigned short rx_rej_badid    PACKED;    /* 26: Conf-Reject w/bad ID */
  478. } ppp_prot_stats_t;
  479.  
  480. /*----------------------------------------------------------------------------
  481.  * PAP Statistics (returned by the PPP_READ_PAP_STATS command).
  482.  */
  483. typedef struct    ppp_pap_stats
  484. {
  485.     unsigned short rx_unknown    PACKED;    /* 00: unknown type */
  486.     unsigned short rx_auth_rqst    PACKED;    /* 02: Authenticate-Request */
  487.     unsigned short rx_auth_ack    PACKED;    /* 04: Authenticate-Ack */
  488.     unsigned short rx_auth_nak    PACKED;    /* 06: Authenticate-Nak */
  489.     unsigned short reserved        PACKED;    /* 08: */
  490.     unsigned short tx_auth_rqst    PACKED;    /* 0A: Authenticate-Request */
  491.     unsigned short tx_auth_ack    PACKED;    /* 0C: Authenticate-Ack */
  492.     unsigned short tx_auth_nak    PACKED;    /* 0E: Authenticate-Nak */
  493.     unsigned short rx_too_large    PACKED;    /* 10: packets too large */
  494.     unsigned short rx_bad_peerid    PACKED;    /* 12: invalid peer ID */
  495.     unsigned short rx_bad_passwd    PACKED;    /* 14: invalid password */
  496. } ppp_pap_stats_t;
  497.  
  498. /*----------------------------------------------------------------------------
  499.  * CHAP Statistics (returned by the PPP_READ_CHAP_STATS command).
  500.  */
  501. typedef struct    ppp_chap_stats
  502. {
  503.     unsigned short rx_unknown    PACKED;    /* 00: unknown type */
  504.     unsigned short rx_challenge    PACKED;    /* 02: Authenticate-Request */
  505.     unsigned short rx_response    PACKED;    /* 04: Authenticate-Ack */
  506.     unsigned short rx_success    PACKED;    /* 06: Authenticate-Nak */
  507.     unsigned short rx_failure    PACKED;    /* 08: Authenticate-Nak */
  508.     unsigned short reserved        PACKED;    /* 0A: */
  509.     unsigned short tx_challenge    PACKED;    /* 0C: Authenticate-Request */
  510.     unsigned short tx_response    PACKED;    /* 0E: Authenticate-Ack */
  511.     unsigned short tx_success    PACKED;    /* 10: Authenticate-Nak */
  512.     unsigned short tx_failure    PACKED;    /* 12: Authenticate-Nak */
  513.     unsigned short rx_too_large    PACKED;    /* 14: packets too large */
  514.     unsigned short rx_bad_peerid    PACKED;    /* 16: invalid peer ID */
  515.     unsigned short rx_bad_passwd    PACKED;    /* 18: invalid password */
  516.     unsigned short rx_bad_md5    PACKED;    /* 1A: invalid MD5 format */
  517.     unsigned short rx_bad_resp    PACKED;    /* 1C: invalid response */
  518. } ppp_chap_stats_t;
  519.  
  520. /*----------------------------------------------------------------------------
  521.  * Connection Information (returned by the PPP_GET_CONNECTION_INFO command).
  522.  */
  523. typedef struct    ppp_conn_info
  524. {
  525.     unsigned short remote_mru    PACKED;    /* 00:  */
  526.     unsigned char  ip_options    PACKED;    /* 02:  */
  527.     unsigned char  ip_local[4]    PACKED;    /* 03:  */
  528.     unsigned char  ip_remote[4]    PACKED;    /* 07:  */
  529.     unsigned char  ipx_options    PACKED;    /* 0B:  */
  530.     unsigned char  ipx_network[4]    PACKED;    /* 0C:  */
  531.     unsigned char  ipx_local[6]    PACKED;    /* 10:  */
  532.     unsigned char  ipx_remote[6]    PACKED;    /* 16:  */
  533.     unsigned char  ipx_router[48]    PACKED;    /* 1C:  */
  534.     unsigned char  auth_status    PACKED;    /* 4C:  */
  535.     unsigned char  peer_id[0]    PACKED;    /* 4D:  */
  536. } ppp_conn_info_t;
  537.  
  538. /* Data structure for SET_TRIGGER_INTR command
  539.  */
  540.  
  541. typedef struct ppp_intr_info{
  542.     unsigned char  i_enable        PACKED; /* 0 Interrupt enable bits */
  543.     unsigned char  irq              PACKED; /* 1 Irq number */
  544.     unsigned short timer_len        PACKED; /* 2 Timer delay */
  545. } ppp_intr_info_t;
  546.  
  547.  
  548. #define FT1_MONITOR_STATUS_CTRL                         0x80
  549. #define SET_FT1_MODE                                    0x81
  550.  
  551.  
  552.  
  553. /* Special UDP drivers management commands */
  554. #define PPIPE_ENABLE_TRACING                            0x20
  555. #define PPIPE_DISABLE_TRACING                           0x21
  556. #define PPIPE_GET_TRACE_INFO                            0x22
  557. #define PPIPE_GET_IBA_DATA                              0x23
  558. #define PPIPE_KILL_BOARD                     0x24
  559. #define PPIPE_FT1_READ_STATUS                           0x25
  560. #define PPIPE_DRIVER_STAT_IFSEND                        0x26
  561. #define PPIPE_DRIVER_STAT_INTR                          0x27
  562. #define PPIPE_DRIVER_STAT_GEN                           0x28
  563. #define PPIPE_FLUSH_DRIVER_STATS                        0x29
  564. #define PPIPE_ROUTER_UP_TIME                            0x30
  565.  
  566. #define DISABLE_TRACING                 0x00
  567. #define TRACE_SIGNALLING_FRAMES                0x01
  568. #define TRACE_DATA_FRAMES                0x02
  569.  
  570.  
  571.  
  572. #ifdef        _MSC_
  573. #  pragma    pack()
  574. #endif
  575. #endif    /* _SDLA_PPP_H */
  576.